<?php
require_once "..\Entities\Comentario.php";

class CommentRepository 
{
	function InsertarComentario($cod_usuario,$comentario) //Listo
	{
		try
		{
			$connection = new mysqli("localhost","root","","db_maravillosos80");
			$connection->set_charset('utf8');
			
			if (!isset($connection))
			{
				throw new Exception('Error al conectar con la base de datos: ' . $connection->connect_error);
			}
			
			$query = 'INSERT INTO comentario (cod_usuario, fecha_comentario, texto_comentario, url, timestamp, cod_comentario_padre, counter_me_gusta) VALUES (?,?,?,?,NOW(),?,0)';
			
			$cusr = $cod_usuario;
			$fech = $comentario->GetFecha();
			$text = $comentario->GetTexto();
			$urlc = $comentario->GetUrl();
			$codp = $comentario->GetCodComentarioPadre();
			
			print_r($comentario);
			if ($stmt = $connection->prepare($query))
			{
				if(!$stmt->bind_param('isssi',$cusr,$fech,$text,$urlc,$codp))
				{
					$stmt->close();
					$connection->close();
					throw new Exception('Error al procesar parametros: ' . $connection->error);
				}
					
				if(!$stmt->execute())
				{
					$stmt->close();
					$connection->close();
					throw new Exception('Error en la consulta: ' . $connection->error);
				}
				$stmt->close();
			}
			//echo print_r($stmt);
			$connection->close();			
			return 0;			
		} 
		catch (Exception $e)
		{
			return 1;
		}
	}
	
	function ObtenerComentarios($cod_usuario) // Listo: Modif Tabla comentario quitando comentario padre y arreglar query
	{
		$connection = new mysqli("localhost","root","","db_maravillosos80");
		$connection->set_charset('utf8');
		
		if (!isset($connection))
		{
			throw new Exception('Error al conectar con la base de datos: '.$connection->connect_error);
		}
		
		$queryamigos = 'SELECT DISTINCT * FROM (select amistades.cod_usuario_sol_amistad as cod_usuario, cod_comentario_padre as p,comentario.cod_comentario, comentario.texto_comentario, comentario.fecha_comentario as f from amistades, comentario where amistades.cod_usuario_sol_amistad = comentario.cod_usuario AND amistades.cod_usuario = 2 UNION ALL select amistades.cod_usuario, cod_comentario_padre as p, comentario.cod_comentario, comentario.texto_comentario, comentario.fecha_comentario as f from amistades, comentario where amistades.cod_usuario = comentario.cod_usuario AND amistades.cod_usuario = 2 ORDER BY p,f) AS mis_comentarios;';
		
		if ($stmt = $connection->prepare($queryamigos))
		{
			/*if(!$stmt->bind_param('ii',$cod_usuario,$cod_usuario))
			{
				$stmt->close();
				$connection->close();
				throw new Exception('Error en el procesamiento de parametros: ' . $connection->error);
			}*/
		
			if(!$stmt->execute())
			{
				$stmt->close();
				$connection->close();
				throw new Exception('Error en la ejecucion de la consulta: ' . $connection->error);
			}
		
			$data = $stmt->get_result();
		
			if(!isset($data) || !$data)
			{
				$stmt->close();
				$connection->close();
				throw new Exception('Error al obtener los datos: ' . $connection->error);
			}
		
			$comentarios = array();
			while($comentData = $data->fetch_array(MYSQLI_ASSOC))
			{
				if(isset($comentData))
				{
					$comentario = new Comentario();

		
					$comentario->SetCodComentarioPadre($comentData['p']);
					$comentario->SetId($comentData['cod_comentario']);
					$comentario->SetTexto($comentData['texto_comentario']);
					$comentario->SetFecha($comentData['f']);
					
					array_push($comentarios,$comentario);
					//print_r($user);
				}
			}
		}
		$connection->close();
		//print_r($amigos);
		//var_dump($amigos);
		return $comentarios;
	}	
	
	function MeGustaComentario($cod_comentario) // Listo
	{
		try
		{
			$connection = new mysqli("localhost","root","","db_maravillosos80");
			$connection->set_charset('utf8');
			
			// Check connection
			if (!isset($connection))
			{
				throw new Exception('Error al conectar con la base de datos: ' . $connection->connect_error);
			}
			
			$query = 'UPDATE comentario SET counter_me_gusta = counter_me_gusta + 1 WHERE cod_comentario = ?;';
			
			if ($stmt = $connection->prepare($query))
			{
				//bind parameters for markers
				if(!$stmt->bind_param('i',$cod_comentario))
				{
					$stmt->close();
					$connection->close();
					throw new Exception('Error al procesar parametros: ' . $connection->error);
				}
					
				//execute query
				if(!$stmt->execute())
				{
					$stmt->close();
					$connection->close();
					throw new Exception('Error en la consulta: ' . $connection->error);
				}
				$stmt->close();
			}
			$connection->close();
			return 0;			
		} 
		catch (Exception $e)
		{
			return 1;
		}
	}
}
?>